package com.ruoyi.subsidy.domain.bo;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.ruoyi.common.annotation.ConditionalExport;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BigDecimalSerializer;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.filter.IntegerArrayTypeHandler;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;
import java.math.BigDecimal;

/**
 * 补贴申请业务对象 sys_subsidy_application
 *
 * @author nbacheng
 * @date 2025-08-07
 */

@Data
@EqualsAndHashCode(callSuper = true)
@TableName("sys_planting_subsidy")
//@ExcelIgnoreUnannotated
public class SysSubsidyPlantingBo extends SysSubsidyApplicationBo {

    @JsonSerialize(using = BigDecimalSerializer.class)
    private BigDecimal areaAmount;

    private String remark;

    private String oftenAddr;


   // @Excel(name = "idCardAddrhaha")
    private String idCardAddr;

    private String sex;

    private String age;

    //@Excel(name = "abnormal")
    private String abnormal;

    @Excel(name = "申请人")
    private String appyBy;
    //@ExcelProperty(value = "身份证号码")
    @Excel(name = "身份证号码")
    private String idCard;
    //@ExcelProperty(value = "一卡通号码")
    @Excel(name = "一卡通号码")
    private String bankCard;
   // @ExcelProperty(value = "手机号码")
    @Excel(name = "手机号码")
    private String phone;


    @Excel(name = "乡")
    private String townName;
    /**
     * 村名称
     */
    //  @NotBlank(message = "村名称不能为空", groups = { AddGroup.class, EditGroup.class })
    @Excel(name = "村")
    private String villageName;

    /**
     * 乡名称
     */
    // @NotBlank(message = "乡名称不能为空", groups = { AddGroup.class, EditGroup.class })

    //@ConditionalExport(paramName = "excelTypeDidao", expectedValue = "yumihh")
    //@ExcelProperty(value = "玉米种植面积")

    @JsonSerialize(using = BigDecimalSerializer.class)
    @Excel(name = "玉米补贴面积(亩)")
    @TableField("yumi_area_amount")
    private BigDecimal yumiareaAmount;

    @JsonSerialize(using = BigDecimalSerializer.class)
    @Excel(name = "玉米补贴金额")
   // @ExcelProperty(value = "玉米补贴金额")
    @TableField(exist = false)
    private BigDecimal yumiareaAmountPri;


    @JsonSerialize(using = BigDecimalSerializer.class)
  //  @ConditionalExport(paramName = "excelTypeDidao", expectedValue = "yumihhpp")
   // @ExcelProperty(value = "大豆种植面积")
    @Excel(name = "大豆补贴面积(亩)")
    @TableField("dadou_area_amount")
    private BigDecimal dadouareaAmount;

   // @ExcelProperty(value = "大豆补贴金额")
    @JsonSerialize(using = BigDecimalSerializer.class)
    @Excel(name = "大豆补贴金额(元)")
    @TableField(exist = false)
    private BigDecimal dadouareaAmountPri;

    @JsonSerialize(using = BigDecimalSerializer.class)
    @Excel(name = "稻谷地下补贴面积")
    @TableField("daogudixia_area_amount")
    private BigDecimal daogudixiaareaAmount;

    @JsonSerialize(using = BigDecimalSerializer.class)
    @Excel(name = "稻谷地下补贴金额")
    @TableField(exist = false)
    private BigDecimal daogudixiaareaAmountPri;

    @JsonSerialize(using = BigDecimalSerializer.class)
    @Excel(name = "稻谷地表补贴面积")
    @TableField("daogudibi_area_amount")
    private BigDecimal daogudibiareaAmount;

    @JsonSerialize(using = BigDecimalSerializer.class)
    @Excel(name = "稻谷地表补贴金额")
    @TableField(exist = false)
    private BigDecimal daogudibiareaAmountPri;

    @JsonSerialize(using = BigDecimalSerializer.class)
   // @Excel(name = "稻谷补贴总面积")
   // @ExcelProperty(value = "水稻种植面积")
    @TableField("daoguhe_area_amount")
    private BigDecimal daoguheareaAmount;

    @JsonSerialize(using = BigDecimalSerializer.class)
   // @Excel(name = "稻谷补贴总金额")
   // @ExcelProperty(value = "水稻补贴金额")
    @TableField(exist = false)
    private BigDecimal daoguheareaAmountPri;

    @JsonSerialize(using = BigDecimalSerializer.class)
    @Excel(name = "高油大豆补贴面积")
    @TableField("areaAmountdouGaoyou")
    private BigDecimal areaAmountdouGaoyou;

    @JsonSerialize(using = BigDecimalSerializer.class)
    @Excel(name = "高油大豆补贴金额")
    @TableField(exist = false)
    private BigDecimal areaAmountdouGaoyouPri;

    @JsonSerialize(using = BigDecimalSerializer.class)
    @Excel(name = "高蛋白大豆补贴面积")
    @TableField("areaAmountdouGaodanbai")
    private BigDecimal areaAmountdouGaodanbai;

    @JsonSerialize(using = BigDecimalSerializer.class)
    @Excel(name = "高蛋白大豆补贴金额")
    @TableField(exist = false)
    private BigDecimal areaAmountdouGaodanbaiPri;

    @JsonSerialize(using = BigDecimalSerializer.class)
    @Excel(name = "耕地地力补贴面积")
    @TableField("farmlandareaAmount")
    private BigDecimal farmlandareaAmount;

    @JsonSerialize(using = BigDecimalSerializer.class)
    @Excel(name = "耕地地力补贴金额")
    @TableField(exist = false)
    private BigDecimal farmlandareaAmountPri;

    @JsonSerialize(using = BigDecimalSerializer.class)
    @TableField("areaAmountdou")
    private BigDecimal areaAmountdou;

    @JsonSerialize(using = BigDecimalSerializer.class)
    @TableField(exist = false)
    private BigDecimal areaAmountdouPri;


    @JsonSerialize(using = BigDecimalSerializer.class)
    @Excel(name = "第一轮耕地轮作玉米面积")
    @TableField("pre_yu_one")
    private BigDecimal preyuone;

    @JsonSerialize(using = BigDecimalSerializer.class)
    @Excel(name = "第一轮耕地轮作玉米面积")
    @TableField("pre_xiao_one")
    private BigDecimal prexiaoone;

    @JsonSerialize(using = BigDecimalSerializer.class)
    @Excel(name = "第一轮耕地轮作玉米面积")
    @TableField("pre_shu_one")
    private BigDecimal preshuone;

    @JsonSerialize(using = BigDecimalSerializer.class)
    @Excel(name = "第一轮耕地轮作玉米面积")
    @TableField("pre_za_one")
    private BigDecimal prezaone;

    @JsonSerialize(using = BigDecimalSerializer.class)
    @Excel(name = "第一轮耕地轮作玉米面积")
    @TableField("pre_jinji_one")
    private BigDecimal prejinjione;

    @JsonSerialize(using = BigDecimalSerializer.class)
    @Excel(name = "第一轮耕地轮作玉米面积")
    @TableField("cur_all_one")
    private BigDecimal curallone;

    @JsonSerialize(using = BigDecimalSerializer.class)
    @Excel(name = "第一轮耕地轮作玉米面积")
    @TableField(exist = false)
    private BigDecimal curallonepre;

    @JsonSerialize(using = BigDecimalSerializer.class)
    @Excel(name = "第一轮耕地轮作玉米面积")
    @TableField("pre_yu_two")
    private BigDecimal preyutwo;

    @JsonSerialize(using = BigDecimalSerializer.class)
    @Excel(name = "第一轮耕地轮作玉米面积")
    @TableField("cur_all_two")
    private BigDecimal curalltwo;

    @JsonSerialize(using = BigDecimalSerializer.class)
    @Excel(name = "第一轮耕地轮作玉米面积")
    @TableField(exist = false)
    private BigDecimal curalltwopre;


    @JsonSerialize(using = BigDecimalSerializer.class)
    @Excel(name = "第一轮耕地轮作玉米面积")
    @TableField("pre_da_three")
    private BigDecimal predathree;

    @JsonSerialize(using = BigDecimalSerializer.class)
    @Excel(name = "第一轮耕地轮作玉米面积")
    @TableField("pre_za_three")
    private BigDecimal prezathree;

    @JsonSerialize(using = BigDecimalSerializer.class)
    @Excel(name = "第一轮耕地轮作玉米面积")
    @TableField("pre_yu_three")
    private BigDecimal preyuthree;

    @JsonSerialize(using = BigDecimalSerializer.class)
    @Excel(name = "第一轮耕地轮作玉米面积")
    @TableField("cur_xiao_three")
    private BigDecimal curxiaothree;

    @JsonSerialize(using = BigDecimalSerializer.class)
    @Excel(name = "第一轮耕地轮作玉米面积")
    @TableField("cur_ma_three")
    private BigDecimal curmathree;

    @JsonSerialize(using = BigDecimalSerializer.class)
    @Excel(name = "第一轮耕地轮作玉米面积")
    @TableField("cur_tian_three")
    private BigDecimal curtianthree;

    @JsonSerialize(using = BigDecimalSerializer.class)
    @Excel(name = "第一轮耕地轮作玉米面积")
    @TableField("pre_ma_three_new")
    private BigDecimal premathreenew;

    @JsonSerialize(using = BigDecimalSerializer.class)
    @Excel(name = "第一轮耕地轮作玉米面积")
    @TableField("cur_tian_three_new")
    private BigDecimal curtianthreenew;

    @JsonSerialize(using = BigDecimalSerializer.class)
    @Excel(name = "第一轮耕地轮作玉米面积")
    @TableField("cur_all_three")
    private BigDecimal curallthree;

    @JsonSerialize(using = BigDecimalSerializer.class)
    @Excel(name = "第一轮耕地轮作玉米面积")
    @TableField(exist = false)
    private BigDecimal curallthreepre;



    @JsonSerialize(using = BigDecimalSerializer.class)
    @Excel(name = "第一轮耕地轮作玉米面积")
    @TableField("pre_niang_four")
    private BigDecimal preniangfour;


    @JsonSerialize(using = BigDecimalSerializer.class)
    @Excel(name = "第一轮耕地轮作玉米面积")
    @TableField("pre_jingji_four")
    private BigDecimal prejingjifour;

    @JsonSerialize(using = BigDecimalSerializer.class)
    @Excel(name = "第一轮耕地轮作玉米面积")
    @TableField("cur_hua_four")
    private BigDecimal curhuafour;

    @JsonSerialize(using = BigDecimalSerializer.class)
    @Excel(name = "第一轮耕地轮作玉米面积")
    @TableField("cur_kui_four")
    private BigDecimal curkuifour;

    @JsonSerialize(using = BigDecimalSerializer.class)
    @Excel(name = "第一轮耕地轮作玉米面积")
    @TableField("cur_bai_four")
    private BigDecimal curbaifour;

    @JsonSerialize(using = BigDecimalSerializer.class)
    @Excel(name = "第一轮耕地轮作玉米面积")
    @TableField("cur_yousha_four")
    private BigDecimal curyoushafour;

    @JsonSerialize(using = BigDecimalSerializer.class)
    @Excel(name = "第一轮耕地轮作玉米面积")
    @TableField("cur_youcai_four")
    private BigDecimal curyoucaifour;

    @JsonSerialize(using = BigDecimalSerializer.class)
    @Excel(name = "第一轮耕地轮作玉米面积")
    @TableField("cur_zhima_four")
    private BigDecimal curzhimafour;

    @JsonSerialize(using = BigDecimalSerializer.class)
    @Excel(name = "第一轮耕地轮作玉米面积")
    @TableField("cur_huma_four")
    private BigDecimal curhumafour;

    @JsonSerialize(using = BigDecimalSerializer.class)
    @Excel(name = "第一轮耕地轮作玉米面积")
    @TableField("cur_all_four")
    private BigDecimal curallfour;

    @JsonSerialize(using = BigDecimalSerializer.class)
    @Excel(name = "第一轮耕地轮作玉米面积")
    @TableField(exist = false)
    private BigDecimal curallfourpre;

    @JsonSerialize(using = BigDecimalSerializer.class)
    @Excel(name = "第一轮耕地轮作玉米面积")
    @TableField("crop_all")
    private BigDecimal cropall;

    @JsonSerialize(using = BigDecimalSerializer.class)
    @Excel(name = "第一轮耕地轮作玉米面积")
    @TableField(exist = false)
    private BigDecimal cropallpre;



    @TableField(value = "lunzuoapplytype",typeHandler = IntegerArrayTypeHandler.class)
    private Integer[] lunzuoapplytype;


    @TableField(exist = false)
    private String quantity;



    private String year;


    private String straName;

    private String attachments;

    @JsonSerialize(using = BigDecimalSerializer.class)
    @TableField("ownArea")
    private BigDecimal ownArea;


    @JsonSerialize(using = BigDecimalSerializer.class)
    @TableField("borrowAmount")
    private BigDecimal borrowAmount;

    @TableField("gaodanbaiType")
    private String gaodanbaiType;

    @TableField("gaodanbaiWeight")
    private String gaodanbaiWeight;

    @TableField("gaodanbaiArea")
    private String gaodanbaiArea;

    @TableField("gaodanbaiWhere")
    private String gaodanbaiWhere;

    @TableField("chargeName")
    private String chargeName;

    @TableField("chargePhone")
    private String chargePhone;

    @TableField("chargePost")
    private String chargePost;

    @TableField("appyExcel")
    private String appyExcel;

    @TableField("saleFile")
    private String saleFile;

    @TableField("borrow")
    private String borrow;

    @TableField("isprice")
    private String isprice;

    @JsonSerialize(using = BigDecimalSerializer.class)
    @TableField(exist = false)
    private BigDecimal areaAmountPri;

    // @TableField(exist = false)
    // private  BigDecimal areamountdouPri;


    @TableField(exist = false)
    private String qingshifile;


    @TableField(exist = false)
    private String excelTypeDidao;

    @TableField(exist = false)
    private String hechafile;

    @TableField(exist = false)
    private String saofile;


    // @ExcelProperty(value = "状态")
    @TableField(exist = false)
    private String statusShow;

    // @ExcelProperty(value = "状态")
    @TableField(exist = false)
    private String exportType;



}
